home *** CD-ROM | disk | FTP | other *** search
/ BOCA MegaMedia / BOCA MegaMedia.iso / qfd32 / disk1.pak / HOST.SRP < prev    next >
Text File  |  1997-10-30  |  8KB  |  357 lines

  1. '*******************************************************
  2. '*               Host Mode Script   Version 1.0        *
  3. '*    Copyright Smith Micro Software, Inc. (c) 1995       *
  4. '*******************************************************
  5.  
  6. INTEGER BaudRate 
  7. INTEGER FALSE                   = 0  
  8. INTEGER TRUE                    = 1  
  9. INTEGER CANCEL                  = -1  
  10. INTEGER INPUT_TIMEOUT  
  11. INTEGER host_timeout            = FALSE  
  12. INTEGER host_continue  
  13. INTEGER RED                     = 31    ' ANSI color codes
  14. INTEGER GREEN                   = 32
  15. INTEGER YELLOW                  = 33
  16. INTEGER CYAN                    = 36
  17.  
  18. STRING CurrentDir$  
  19. STRING StartupDir$  
  20. STRING TempDir$  
  21. STRING UserName$  
  22. STRING userString$  
  23. STRING thatSelection$ = "\r\nThe option you selected is not available to you.\r\n"  
  24. STRING accessDenied$  = "\r\nAccess denied.\r\n"  
  25. STRING tooLong$           = "\r\n\r\nYou took too long to respond.\r\n\r\nGoodbye!\r\n"  
  26. STRING invalid$           = "\r\nInvalid selection.\r\n"  
  27.  
  28.  
  29. '********************** main function for host mode script *********************
  30. FUNCTION main()           
  31.  
  32.     INTEGER connect, i, nKey, rv, passing_data_call  
  33.  
  34.     host_continue = TRUE 
  35.     passing_data_call = FALSE
  36.     connect = FALSE 
  37.     INPUT_TIMEOUT = GetHostTimeout()
  38.  
  39.     IF CarrierDetect() <> 0 THEN
  40.         passing_data_call = PassOffDataCall()
  41.         
  42.         IF NOT passing_data_call THEN
  43.             Echo("\r\nWould you like to hangup the line? <Y/N>: ") 
  44.             IF NOT GetUserInput(userString$, TRUE, INPUT_TIMEOUT, TRUE) THEN
  45.                 HostOut(tooLong$) 
  46.                 RETURN 
  47.             ENDIF
  48.  
  49.             IF LEFT(userString$,1) = "Y" OR LEFT(userString$,1) = "y" THEN
  50.                 WaitForSecs(2) 
  51.                 Hangup() 
  52.             ELSEIF LEFT(userString$,1) = "N" OR LEFT(userString$,1) = "n" THEN
  53.                 connect = TRUE 
  54.             ENDIF
  55.         ELSE
  56.             connect = TRUE
  57.         ENDIF            
  58.     ENDIF             
  59.     
  60.     IF NOT connect THEN
  61.         IF GetHostSpeed() <> 0 THEN
  62.             SetBaudRate(GetHostSpeed()) 
  63.         ENDIF
  64.  
  65.         SetParity("N") 
  66.         SetStopBits("1") 
  67.         SetDataBits(8) 
  68.         SendInit()
  69.         WaitForString("OK\r\n", 3)  
  70.     ENDIF
  71.     
  72.     StartupDir$ = GetDirectory() 
  73.  
  74.     WHILE host_continue
  75.         SetDirectory(GetHostPath()) 
  76.         CurrentDir$ = GetDirectory()
  77.  
  78.         IF NOT connect THEN
  79.             Echo("\r\nWaiting for call...\r\n")  
  80.             Echo("Press <ESC> to cancel or L to logon locally: ") 
  81.         ENDIF
  82.  
  83.         IF passing_data_call THEN
  84.             connect = FALSE
  85.         ENDIF         
  86.  
  87.         WHILE NOT connect AND host_continue  
  88.             nKey = WaitForConnection()
  89.  
  90.             IF nKey = 0 THEN
  91.                 Beep() 
  92.                 WaitLogonDelay() 
  93.                 connect = TRUE 
  94.             ELSEIF nKey = -1 THEN
  95.                 Echo("\r\nHost mode canceled by operator\r\n") 
  96.                 host_continue = FALSE 
  97.                 EXITWHILE 
  98.             ELSEIF nKey = 76 OR nKey = 108 THEN       ' letter "L" or "l"
  99.                 connect = TRUE 
  100.                 SetLocalHost(TRUE) 
  101.                 Echo("\r\nEntering host mode locally.\r\n") 
  102.             ENDIF
  103.         WEND
  104.  
  105.         IF host_continue <> 0 AND connect <> 0 THEN
  106.             DetectANSI()
  107.             rv = GetUserInfo()
  108.  
  109.             IF rv <> 0 THEN                 
  110.                 connect = FALSE
  111.                 Hangup()       
  112.             ELSE
  113.                 WelcomeScreen()
  114.                 HostMainMenu() 
  115.             ENDIF
  116.         ENDIF
  117.  
  118.         SetLocalHost(FALSE) 
  119.  
  120.         IF CarrierDetect() <> 0 THEN                    
  121.             Hangup() 
  122.         ENDIF
  123.  
  124.         connect = FALSE 
  125.         host_timeout = FALSE 
  126.     WEND
  127.  
  128.     SetDirectory(StartupDir$) 
  129.  
  130. ENDFUNCTION
  131.  
  132.  
  133. '********************** main menu for the host mode *********************
  134. FUNCTION HostMainMenu()            
  135.  
  136.     INTEGER host_online = TRUE
  137.     INTEGER user_online = FALSE
  138.     INTEGER bChat
  139.     STRING key$
  140.  
  141.     WHILE CarrierDetect() AND host_online
  142.         SetFColor(CYAN, 1)
  143.         HostOut("\r\n     Main Menu\r\n")
  144.         SetFColor(YELLOW, 1)
  145.         HostOut("\r\n     F - File Access\r\n")
  146.         HostOut("     A - Account Display/Edit\r\n")
  147.         HostOut("     P - Page Host Operator\r\n")
  148.         HostOut("     X - Exit\r\n")
  149.         HostOut("\r\n")
  150.         SetFColor(GREEN, 1)
  151.  
  152.         HostOut("\r\n Select a letter from this list, or ? for help: ")
  153.         
  154.         WHILE GetUserInput(key$, TRUE, INPUT_TIMEOUT, TRUE)
  155.             SELECT LEFT(key$,1)
  156.  
  157.                 CASE "f", "F" 
  158.                     SetUserPath()
  159.                     FileMenu()
  160.                     EXITWHILE
  161.  
  162.                 CASE "a", "A"
  163.                     AccountMenu()
  164.                     EXITWHILE
  165.  
  166.                 CASE "p", "P"
  167.                     bChat = PageOperator()
  168.                     IF bChat = TRUE THEN
  169.                         HostOut("\r\nEntering Chat mode...\r\n\n")
  170.                         Chat()
  171.                         HostOut("\r\nExiting Chat mode...\r\n\n")
  172.                     ENDIF                    
  173.                     EXITWHILE
  174.  
  175.                 CASE "x", "X"
  176.                     HostOut("\r\nAre you sure? <Y/N>: ")
  177.                     IF GetUserInput(key$, TRUE, INPUT_TIMEOUT, TRUE) <> 0 THEN
  178.                         IF LEFT(key$,1) = "y" OR LEFT(key$,1) = "Y" THEN
  179.                             SetDefaultPath()
  180.                             HostOut("\r\nGoodbye!\r\n") 
  181.                         host_online = FALSE 
  182.                         ENDIF
  183.                     ELSE
  184.                         host_timeout = TRUE 
  185.                     ENDIF
  186.                     EXITWHILE
  187.  
  188.                 CASE "?"
  189.                     TempDir$ = GetHomePath() + "/HOSTHELP.TXT"
  190.                     IF NOT OutFile(TempDir$) THEN
  191.                         HostOut("\r\nNo help available.\r\n") 
  192.                     ENDIF
  193.                     EXITWHILE
  194.  
  195.                 CASE DEFAULT
  196.                     SetFColor(RED, 1)
  197.                     HostOut("\r Select a letter from this list, or ? for help: ")
  198.                     SetFColor(GREEN, 1)
  199.  
  200.             ENDSELECT
  201.         WEND
  202.  
  203.         IF LEFT(key$, 1) = "" THEN
  204.             host_timeout = TRUE 
  205.         ENDIF
  206.  
  207.         IF host_timeout <> 0 THEN
  208.             HostOut(tooLong$) 
  209.             EXITWHILE 
  210.         ENDIF
  211.     WEND
  212.  
  213.     IF NOT CarrierDetect() THEN
  214.         Hangup()
  215.     ENDIF
  216.  
  217. ENDFUNCTION
  218.  
  219.  
  220. '********************** file access menu *********************
  221. FUNCTION FileMenu()    
  222.  
  223.     STRING key$
  224.  
  225.     WHILE CarrierDetect()
  226.         HostOut("\r\n")
  227.         SetFColor(YELLOW, 1)
  228.         HostOut("\r\n     U - Upload files\r\n")
  229.         HostOut("     D - Download files\r\n")
  230.         HostOut("     C - Change path\r\n")
  231.         HostOut("     L - List files\r\n")
  232.         HostOut("     X - Exit\r\n")
  233.         HostOut("\r\n")
  234.         SetFColor(GREEN, 1)
  235.         HostOut(" Select a letter from this list, or ? for help: ")
  236.         
  237.         WHILE GetUserInput(key$, TRUE, INPUT_TIMEOUT, TRUE)
  238.             SELECT LEFT(key$,1)
  239.  
  240.                 CASE "d", "D" 
  241.                     IF UserCanDownload() <> 0 THEN
  242.                         DownloadFiles() 
  243.                     ELSE
  244.                         HostOut(thatSelection$) 
  245.                     ENDIF
  246.                     EXITWHILE
  247.  
  248.                 CASE "u", "U"
  249.                     IF UserCanUpload() <> 0 THEN
  250.                         UploadFiles() 
  251.                     ELSE
  252.                         HostOut(thatSelection$) 
  253.                     ENDIF
  254.                     EXITWHILE
  255.  
  256.                 CASE "c", "C"
  257.                     IF UserCanChangeDir() <> 0 THEN
  258.                         ChangePath() 
  259.                     ELSE
  260.                         HostOut(thatSelection$) 
  261.                     ENDIF
  262.                     EXITWHILE
  263.  
  264.                 CASE "l", "L"
  265.                     ListFiles()
  266.                     EXITWHILE 
  267.  
  268.                 CASE "x", "X"
  269.                     RETURN
  270.  
  271.                 CASE "?"
  272.                     TempDir$ = GetHomePath() + "/HOSTHELP.TXT"
  273.                     IF NOT OutFile(TempDir$) THEN
  274.                         HostOut("\r\nNo help available.\r\n") 
  275.                     ENDIF
  276.                     EXITWHILE
  277.  
  278.                 CASE DEFAULT
  279.                     SetFColor(RED, 1)
  280.                     HostOut("\r Select a letter from this list, or ? for help: ")
  281.                     SetFColor(GREEN, 1)
  282.  
  283.             ENDSELECT
  284.         WEND
  285.  
  286.         IF LEFT(key$,1) = ""  THEN
  287.             host_timeout = TRUE 
  288.         ENDIF
  289.  
  290.         IF host_timeout <> 0 THEN
  291.             EXITWHILE 
  292.         ENDIF
  293.     WEND
  294.  
  295. ENDFUNCTION
  296.  
  297.  
  298. '********************** account displat/edit menu *********************
  299. FUNCTION AccountMenu()    
  300.  
  301.     STRING key$
  302.  
  303.     WHILE CarrierDetect()
  304.         HostOut("\r\n")
  305.         HostOut("\r\n User: ")
  306.         HostOut(GetUserName())
  307.         HostOut("\r\n")
  308.  
  309.         SetFColor(YELLOW, 1)
  310.         HostOut("\r\n S - Display statistics on your account")
  311.         HostOut("\r\n A - Display or Edit account information")
  312.         HostOut("\r\n X - Exit\r\n")
  313.         SetFColor(GREEN, 1)
  314.         HostOut("\r\n Select a letter from this list, or ? for help: ")
  315.         
  316.         WHILE GetUserInput(key$, TRUE, INPUT_TIMEOUT, TRUE)
  317.             SELECT LEFT(key$,1)
  318.  
  319.                 CASE "s", "S" 
  320.                     DisplayStatistics() 
  321.                     EXITWHILE
  322.  
  323.                 CASE "a", "A"
  324.                     DisplayEdit() 
  325.                     EXITWHILE
  326.  
  327.                 CASE "x", "X"
  328.                     RETURN
  329.  
  330.                 CASE "?"
  331.                     TempDir$ = GetHomePath() + "/HOSTHELP.TXT"
  332.                     IF NOT OutFile(TempDir$) THEN
  333.                         HostOut("\r\nNo help available.\r\n") 
  334.                     ENDIF
  335.                     EXITWHILE
  336.  
  337.                 CASE DEFAULT
  338.                     SetFColor(RED, 1)
  339.                     HostOut("\r Select a letter from this list, or ? for help: ")
  340.                     SetFColor(GREEN, 1)
  341.  
  342.             ENDSELECT
  343.         WEND
  344.  
  345.         IF LEFT(key$,1) = ""  THEN
  346.             host_timeout = TRUE 
  347.         ENDIF
  348.  
  349.         IF host_timeout <> 0 THEN
  350.             EXITWHILE 
  351.         ENDIF
  352.     WEND
  353.  
  354. ENDFUNCTION
  355.  
  356.  
  357.